f21fe33e74ac3844a5690f71266e07c78ec219dd,spring-test/src/main/java/org/springframework/test/context/transaction/TransactionalTestExecutionListener.java,TransactionalTestExecutionListener,getTransactionManager,#TestContext#,308

Before Change


	protected final PlatformTransactionManager getTransactionManager(TestContext testContext) {
		String tmName = retrieveConfigurationAttributes(testContext).getTransactionManagerName();
		try {
			return testContext.getApplicationContext().getBean(tmName, PlatformTransactionManager.class);
		}
		catch (BeansException ex) {
			if (logger.isWarnEnabled()) {

After Change


	 * @see #getTransactionManager(TestContext, String)
	 */
	protected final PlatformTransactionManager getTransactionManager(TestContext testContext) {
		BeanFactory bf = testContext.getApplicationContext().getAutowireCapableBeanFactory();
		String tmName = retrieveConfigurationAttributes(testContext).getTransactionManagerName();

		try {
			// look up by type and explicit name from @TransactionConfiguration
			if (StringUtils.hasText(tmName) && !DEFAULT_TRANSACTION_MANAGER_NAME.equals(tmName)) {
				return bf.getBean(tmName, PlatformTransactionManager.class);
			}

			// look up single bean by type
			if (bf instanceof ListableBeanFactory) {
				ListableBeanFactory lbf = (ListableBeanFactory) bf;
				Map<String, PlatformTransactionManager> beansOfType = BeanFactoryUtils.beansOfTypeIncludingAncestors(
					lbf, PlatformTransactionManager.class);
				if (beansOfType.size() == 1) {
					return beansOfType.values().iterator().next();
				}
			}

			// look up by type and default name from @TransactionConfiguration
			return bf.getBean(DEFAULT_TRANSACTION_MANAGER_NAME, PlatformTransactionManager.class);

		} catch (BeansException ex) {
			if (logger.isWarnEnabled()) {